6 rem kelly kauffman, 3170 sprout way, sparks, nv, 89431: CIS [70206,640]
7 rgb 0,0,0,10:rgb 1,10,10,10
10 print "A ""`"" acts as a CTRL-C at any time.":gosub 40
12 print:print
15 print " EZ-TERMINAL VER 1.17":print " )1985 Kelly Kauffman"
16 ? :?" FOR PUBLIC USE ONLY"
17 ?:?:?" Put mouse in box --> [ ] and click LEFT button to initialize program"
20 get char$
23 if char$<>"" then if asc(char$)=155 then gosub 1000
25 if char$="`" then char$=chr$(3)
30 gosub 150:gosub 160:print char$;:goto 20
40 'Serial I/O driver
50 'config
60 BAUD%=300
70 iobase%=&hdff000
80 serdatr%=&h18+iobase%
90 serdat%=&h30+iobase%
100 serper%=&h32+iobase%
110 intreq%=&h9c+iobase%
120 poke_w serper%,(1/baud%)/(.2794*1e-06)
130 return
140 'write
150 if char$<>"" then if asc(char$)=241 then 42000
151 if char$="" then return else poke_w serdat%,asc(char$)+256
153 if plex=1 then print char$;
154 if plex=1 and cap=1 then buff$=buff$+char$
155 if plex=1 and asc(char$)=13 then print
156 if len(buff$)>253 then gosub 20000
157 return
160 'read
170 char%=peek_w(serdatr%)
175 on error goto 0
180 if (char% and 16384) = 0 then char$="":return
185 if len(buff$)>253 then gosub 20000
190 char$=chr$(char% and 127):poke intreq%,8:if cap=1 then buff$=buff$+char$
191 return
200 gosub 160: print char$;:goto 200
1000 get char$
1010 if char$="" then return
1020 if asc(char$)<48 or asc(char$)>63 then return
1030 if asc(char$)=48 then print " C A P T U R E O N ":cap=1:get char$:get char$:return
1040 if asc(char$)=49 then print " C A P T U R E O F F ":cap=0:get char$:get char$:num=num+1:a$(num)=buff$:buff$="":return
1050 if asc(char$)=50 then ?
1060 if asc(char$)=50 and len(buff$)=0 and num=0 then print " B U T T H E R E'S N O T H I N G T O S A V E ! ! !":get char$:get char$:return
1065 if asc(char$)=50 then cap=0:num=num+1:a$(num)=buff$:buff$=""
1070 if asc(char$)=50 then get char$:get char$:input "Save as ---->";file$:if file$="" then return else open "o",#4,file$:for q=0 to num:print #4,a$(q);:next q:close #4:print " C A P T U R E B U F F E R S A V E D":return
1072 if asc(char$)=51 then num=num+1:a$(num)=buff$:buff$=""
1073 if asc(char$)=51 then scnclr:get char$:get char$:for q=0 to num:print a$(q);:get char$:if char$<>"" then print :?:?"REVIEW ABORTED":return else next q:?:?:?:?:?"Buffer Review Complete.":return
1074 gosub 30000
1075 get char$:get char$
1080 return
20000 a$(num)=buff$
20010 num=num+1:buff$=""
20020 return
30000 on error goto 30999
30001 if asc(char$)=53 then gosub 33000:return
30010 if asc(char$)=52 then gosub 32000:return
30020 if asc(char$)=54 then gosub 34000:return
30030 if asc(char$)=63 then gosub 35000:return
30040 if asc(char$)=55 then gosub 36000:return
30999 return
32000 scnclr
32010 erase a$
32020 dim a$(3000)
32025 get char$:get char$
32027 print at(0,0)
32030 input "Load what Filename ------>";file$
32035 if file$="" then print "Aborted.":goto 32512
32036 x=instr(1,file$,".bas"):y=instr(1,file$,".BAS"):if x=0 or y=0 then bas=0 else bas=1
32038 bas=1
32040 close #4
32045 num=0:erase a$:dim a$(6000)
32050 open "i",#4,file$
32075 on error goto 32510
32080 if bas=1 then line input #4,buff$ else get #4,w$
32085 if bas<>1 and w$="" then 32510
32090 if bas=1 then a$(num)=buff$ else b=len(a$(num)):if b>253 then num=num+1:a$(num)=a$(num)+w$
32095 if bas<>1 and b<=253 then a$(num)=a$(num)+w$
32100 if bas=1 then num=num+1:buff$=""
32110 if not eof(4) then 32080
32510 print "Complete File Loaded."
32512 on error goto 0
32515 close #4
32520 return
33000 scnclr
33010 print
33011 get char$:get char$
33015 if bas=1 then print "Do you want to use the prompts for every line":input yn$:if yn$="n" or yn$="N" then prompt=0 else prompt=1
33017 print :print"Do you want a return sent after each line":input yn$:if yn$="Y" or yn$="y" then retn=1 else retn=0
33018 scnclr
33020 print " Beginning Upload"
33025 get char$:get char$
33030 for i=0 to num
33040 for q=1 to len(a$(i))
33045 qwer=asc(mid$(a$(i),q,1)): if bas=1 and qwer=10 then qwer=13
33047 get char$:if char$<>"" then print:?:?"UPLOAD ABORTED BY USER":print:print:goto 33090
33050 poke_w serdat%,qwer+256
33053 print mid$(a$(i),q,1);
33055 sleep 16000
33060 next q
33065 if retn=1 then poke_w serdat%,269:print
33067 if prompt=1 then gosub 37000
33070 next i
33075 print:print
33080 print "Buffer Upload Complete."
33090 return
34000 if plex=1 then plex=0:?:?:print " F U L L D U P L E X":goto 34020
34010 if plex=0 then plex=1:?:?:print " H A L F D U P L E X"
34020 get char$:get char$:return
35000 scnclr
35010 print "F1 - Turns Capture On. All incoming data will be saved in the buffer."
35020 print "F2 - Turns Capture Off. No data is saved in the buffer."
35030 print "F3 - Save Capture Buffer. Saves the contents of the buffer to a file of your choice."
35040 print "F4 - Review Buffer. Lets you see the contents of the buffer. Press any key during the review to abort."
35050 print "F5 - Load Buffer. This will load a file of your choice into the Buffer. NOTE: It does NOT merge the data, it instead, clears out the old information, then loads in the new."
35060 print "F6 - Upload Buffer. The question about prompts means that the Amiga will wait for the computer you are hooked up with sends a prompt character. This character is the "">"" character. If you are sending other than a"
35070 print " source code, reply ""N""o to this question, then the Amiga will just upload the entire buffer without waiting for prompts."
35080 print "F7 - Duplex. This toggles between half and full duplex. When in Full duplex, the computer you are hooked up with, must echo back what you type in order to see what you have typed. If the computer you are "
35090 print " hooked up with does not echo back what you type, go to half duplex and your typing will be put on the screen immediately."
35100 print "F8 - Clear buffer. Clears out the capture/upload/review buffer."
35110 return
36000 print
36010 print
36020 print " B U F F E R C L E A R E D"
36030 erase a$
36040 dim a$(3000)
36050 buff$=""
36060 return
37000 gosub 160
37010 if char$<>">" then 37000
37020 return
40000 rem draw windows for Function definitions
40010 window #1,0,200,640,100
40020 print #1,inverse(1);"F1";inverse(0);"-Cap On ";inverse(1);"F2";inverse(0);"-Cap Off ";inverse(1);"F3";inverse(0);"-Save ";inverse(1);"F4";inverse(0);"-Review ";inverse(1);"F5";inverse(0);